使用Wireguard实现异地组网并构建IPv6隧道 |
您所在的位置:网站首页 › openwrt br-lan 自动获取ipv6 › 使用Wireguard实现异地组网并构建IPv6隧道 |
使用Wireguard实现异地组网并构建IPv6隧道
前言 最近在研究Wireguard异地组网,打算将家里和机房的局域网组合在一起。同时朋友有使用Wireguard IPv6上网的需求,决定再在组网的基础上添加一个IPv6隧道。 准备工作 两个网段不同的局域网(例如10.10.10.0/24 和 192.168.1.0/24) 两台OpenWrt(至少一个接入公网IPv6) 任意客户端 为机房PVE添加NAT网桥PVE默认的网桥是采用桥接方式,这次我要为它添加一个IPv4 / IPv6双栈NAT网桥 添加网桥添加一个网桥vmbr1,如图所示,将10.10.10.1预留给OpenWrt,IPv6 ULA地址给OpenWrt自动分配 ![]() 为了给vmbr1网桥下的设备分配IP地址,我们需要安装DHCP服务,这里由于组网需要我选择安装OpenWrt 安装OpenWrt创建虚拟机openwrt,配置如图所示 注意:先添加vmbr1再添加vmbr0,这样OpenWrt才会将vmbr0(互联网)视为WAN口 ![]() 下载OpenWrt镜像并导入硬盘,这里可以参考我一篇没写完的文章(bushi https://rickg.cn/2022/05/25/pve-openwrt/https://rickg.cn/2022/05/25/pve-openwrt/推荐的镜像: https://openwrt.mpdn.fun:8443/https://openwrt.mpdn.fun:8443/ 1qm importdisk [vmid] /var/lib/vz/template/iso/bleach-plus-20230601-openwrt-x86-64-generic-squashfs-combined-efi.img local --format=qcow2导入完成后,启动OpenWrt,编辑/etc/config/network,修改LAN口IP ![]() 重启OpenWrt后,在vmbr1网桥下任意虚拟机访问10.10.10.1,即可登录OpenWrt 配置NAT6安装完OpenWrt后,尽管此时我们拥有了IPv6 ULA地址,但未配置NAT6,因此并不能访问IPv6互联网 编辑/etc/sysctl.d/forward.conf ,添加以下内容: 1234net.ipv4.ip_forward=1net.ipv6.conf.all.forwarding=1net.ipv6.conf.eth1.autoconf=1net.ipv6.conf.eth1.accept_ra=2其中eth1为WAN口接口名 重启OpenWrt后,访问10.10.10.1,打开网络->防火墙->自定义规则,添加以下内容: 12# Enable IPv6 NATip6tables -t nat -A POSTROUTING -o eth1 -j MASQUERADE点击重启防火墙后,vmbr1下的IPv6设备应该可以访问IPv6互联网了 ![]() ssh连接到路由器,创建密钥目录并设定掩码: 123mkdir keyscd keys umask 077创建并查看密钥: 1234wg genkey > openwrt-home.keycat openwrt-home.keywg pubkey < openwrt-home.key > openwrt-home.pubcat openwrt-home.pub打开OpenWrt,点击网络->接口->添加新接口,名称为wg1,协议为WireGuard VPN ![]() 创建后自动打开接口编辑界面 ![]() 将私钥填入配置界面,监听端口任意,建议选高位端口,防止被运营商干扰 IP地址一栏,我这里选用172.17.0.1/32的B类地址,个人建议用10.0.0.0/8的A类地址,自定义程度更高。对于IPv6地址,使用fd00::/8开头的本地地址即可,如图中的fd45:da8::1/64,配置完后保存并应用。 配置机房OpenWrt生成公私钥等同上,但是IP填172.17.0.2/32和fd45:da8::2/64,如图所示: ![]() 登入任意路由器,生成一个预共享密钥,增强安全性: 1wg genpsk该密钥在所有端通用,须保存好。 在Peers处点击添加,公钥填写对方的(如家里OpenWrt填写机房公钥),预共享密钥输入刚刚生成的,端点主机输入对端IP(这里我两端均为家宽,因此做了DDNS),端口输入配置的端口,持续Keep-Alive不填。 对于允许的IP,需要输入两项,第一项是WireGuard的IP段,即172.17.0.0/24,第二项即对方机器所处内网IP段,如对端为家则为192.168.1.0/24,如图所示: ![]() 配置完后保存并应用,点击WireGuard接口旁的“连接”,重启接口。 若要查看是否成功连接,点击LuCI界面中的状态->WireGuard状态即可看到对端连接信息: ![]() 此时ping一下对端内网段的IP,哈哈,是不是很激动? ![]() 对于macOS / Windows / Android / iOS等具有GUI等客户端,直接生成一对公私钥即可: ![]() ![]() 对于Linux,参照上文 编写配置文件添加空隧道,填写以下配置文件: 12345678910111213[Interface]PrivateKey = [你的私钥]Address = 172.17.0.4/32, fd45:da8::4/128DNS = 119.29.29.29, 2402:4e00::MTU = 1420[Peer]PublicKey = [服务端公钥]PresharedKey = [预共享密钥]AllowedIPs = 0.0.0.0/0, ::/0Endpoint = [服务端IP]:端口PersistentKeepalive = 25对于允许的IP即AllowedIPs:填写0.0.0.0/0, ::/0即代理IPv4和IPv6所有流量,其他的一些示例: 123456# 只需访问内网段10.10.10.0/24,其他流量不走WireGuardAllowedIPs = 10.10.10.0/24# 全局代理,只允许IPv4流量AllowedIPs = 0.0.0.0/0# 全局代理,只允许IPv6流量AllowedIPs = ::/0保存配置文件后,在WireGuard客户端中导入即可,当然,在正式使用之前,我们还需在服务端中添加客户端作为对端。 配置服务端打开OpenWrt的wg0接口,添加一个Peers,但是这次无需输入端点主机和端口,因为客户端可能位于多层NAT之后: ![]() 保存后,重启wg0接口,现在即可打开客户端享受安全、快速的WireGuard VPN了! 许可协议本文采用 署名-非商业性使用-相同方式共享 4.0 国际 许可协议,转载请注明出处。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |